iT邦幫忙

2021 iThome 鐵人賽

DAY 17
0
自我挑戰組

Line Bot 以python及Django建構系列 第 17

DAY17 專案進度按鈕功能實現-1

  • 分享至 

  • xImage
  •  
if event.postback.data[0] == "專" and event.postback.data[1] == '案':
            line_bot_api.reply_message(
                event.reply_token,
                Report().content()  #回復「專案進度」按鈕樣板訊息
                # TextSendMessage(text=Report().content()) 
            )
if event.postback.data[0] == "回" and event.postback.data[1] == '報':
    uid=event.source.user_id
    user=User_Info.objects.get(uid=uid)
    line_bot_api.reply_message(
        event.reply_token,
        TextSendMessage(text="[昨日完成進度]:"+user.yes_project+"\n\n"+"[今日規劃進度]:"+user.tod_project) 
    )
if event.postback.data[0] == "修" and event.postback.data[1] == '改':
    uid=event.source.user_id
    user=User_Info.objects.get(uid=uid)
    line_bot_api.reply_message(
        event.reply_token,
        TextSendMessage(text="請輸入\n"+"[昨日完成進度]:") 
    )
if event.postback.data[0] == "查" and event.postback.data[1] == '看':  #不是管理員身份
    uid=event.source.user_id
    user=User_Info.objects.get(uid=uid)
    if user.root =="1":
        line_bot_api.reply_message(
            event.reply_token,
            Root_Team().content()
        )
    else :
        line_bot_api.reply_message(
            event.reply_token,
            TextSendMessage(text="你不是管理員無法使用") 
        )
if event.postback.data[:5] == "Root:":
    choose=str(event.postback.data[5:]) #選擇要的組別名稱
    # user=User_Info.objects.filter(team=choose)
    all=''
    for data in User_Info.objects.filter(team=choose):
        if data.update_project == "":
            data.update_project="[本日尚未回報進度]"
        message="姓名:"+data.name+"\n"+"組別:"+data.team+"\n"+"[昨日完成進度]:"+data.yes_project+"\n"+"[今日規劃進度]:"+data.tod_project+"\n"+"[專案進度更新時間]:"+data.update_project+"\n\n"
        all=all+message
    line_bot_api.reply_message(
    event.reply_token,
    TextSendMessage(text=all) 
    )

回傳QuerySet的方法

  • all()
    all() 是最容易的查詢語法,可以將所有的物件都列出來。
    Ex: Coffee.objects.all()

  • filter(**kwargs) / exclude(**kwargs)
    filter(**kwargs)可以根據代入的參數來決定輸出的物件。
    反之,exclude(**kwargs)是輸出排除輸入的參數以外的物件。
    Ex: Coffee.objects.filter(name='latte')
    => 列出名稱為latte的 物件

  • order_by()
    將搜尋出來的QuerySet利用order_by的順序再次排序。
    EX: Coffee.objects.filter(country__name='Africa').order_by('-price', 'name') 將Coffee的Object利用filter搜尋出來之後,再將此QuerySet按照price降冪,name升冪的方式排序
    distinct()
    當搜尋多個Table時,有可能會出現重複的資料,利用 distinct() 即可以消除重複的項目。


今天的歌曲是 周杰倫-陽光宅男 Sunshine Nerd
https://www.youtube.com/watch?v=qQ7g1tfEGFc&list=PLFl6Na2uUoOZBEhBtQ_jeGA4P1V20JvpW&index=16&ab_channel=%E5%91%A8%E6%9D%B0%E5%80%ABJayChou


上一篇
DAY16 簽到按鈕功能實現
下一篇
DAY18 專案進度按鈕功能實現-2
系列文
Line Bot 以python及Django建構30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言